﻿using System;
using System.Collections.Generic;
using KZ.Utilities;
namespace KZ.Express.H.ENT
{
    public class PriceListENT : BaseENT
    {
        public PriceListENT()
        {
            this.PriceListDetails = new List<PriceListDetailENT>();
        }
        [Output]
        public int PriceListID { get; set; }

        [Required(ErrorMessage = "Bạn phải nhập mã bảng giá")]
        public string PriceListCode { get; set; }

        [Required(ErrorMessage = "Bạn phải nhập tên bảng giá")]
        public string PriceListName { get; set; }

        [Required(ErrorMessage = "Bạn phải nhập nhà cung cấp")]
        public int? SupplierID { get; set; }

        [Required(ErrorMessage = "Bạn phải nhập dịch vụ")]
        public int? CarrierID { get; set; }

        [Required(ErrorMessage = "Bạn phải nhập zone")]
        public int? ZoneID { get; set; }

        public DateTime EffectedDate { get; set; }

        public DateTime ExpiredDate { get; set; }

        public bool IsOriginal { get; set; }

        [NotInsertUpdate]
        public bool IsDeleted { get; set; }

        public int CreatedBy { get; set; }

        [NotInsertUpdate]
        public DateTime? CreatedDate { get; set; }

        public int UpdatedBy { get; set; }

        [NotInsertUpdate]
        public DateTime? UpdatedDate { get; set; }

        [NotInsertUpdate]
        public override string Table { get { return "PriceLists"; } }

        [NotInsertUpdate]
        public override string PrimaryKey { get { return "PriceListID"; } }

        [NotInsertUpdate]
        public override string InsertProcedure { get { return "proc_PriceList_Insert"; } }

        [NotInsertUpdate]
        public override string UpdateProcedure { get { return "proc_PriceList_Update"; } }

        [NotInsertUpdate]
        public override string DeleteProcedure { get { return "proc_PriceList_Delete"; } }

        [NotInsertUpdate]
        public override string SelectProcedure { get { return "proc_PriceList_Select"; } }        

        [NotInsertUpdate]
        public List<PriceListDetailENT> PriceListDetails { get; set; }
    }
}